Exemplos de uso da API RESTful em Perl
O exemplo de Perl a seguir mostra como se preparar para começar a interagir com o sistema. Depois das amostras estão as chamadas de função Perl, que importam o arquivo de exemplo, especificam um endereço IP de destino, recuperam um token de autenticação e, finalmente, usam o token de autenticação para executar uma ação em um destino do sistema.
Consulte API do Spectrum Virtualize RESTful para visualizar um exemplo de linguagem Python 3 ou Exemplos de uso em CURL para visualizar exemplos que usam o utilitário de linha de comandos curl.
Nota: Os valores em itálico representam valores que você fornece.
Suponha que o arquivo a seguir seja chamado rest_perl.pl. Uma função é incluída no arquivo para construir uma solicitação de HTTP e retornar os dados JSON a partir da resposta. Essas funções podem ser importadas ou copiadas e coladas na parte superior do script Perl.
#!/usr/bin/perl -w use strict;
use warnings;
use HTTP::Request; use HTTP::Headers; use LWP::UserAgent; use JSON::PP;
my $ua = LWP::UserAgent->new(ssl_opts => { SSL_verify_mode => 'SSL_VERIFY_NONE' }j;
subcomando {
my($host, $target, $method, $header_ref, $data_ref) = @_;
meu $data_json =% {? encode_json ($data_ref): "";
my $request = HTTP::Request->new($method =>
"https://$host:7443/$target", HTTP::Headers->new(%{$header_ref}), $data_json);
$request->header(Content_Type => 'application/json');
my $response = $ua->request($request);
return decode_json($response->content);
}
Se o arquivo estiver sendo importado, use a linha a seguir em outro script Perl, ou no depurador Perl:
do "rest_perl.pl";Especifique o endereço IP do nó para o nó de destino desejado:
$host = "system_IP_address";Forneça informações de autenticação para criar um token para uso em comandos futuros:
$token = comando ($host,
'API_version/auth',
'POST',
{"X-Auth-Password" => "password", "X-Auth-Username" => "username"}, {})->{"token"};
Para criar uma matriz, inclua o método POST, um destino, os parâmetros JSON e o token recém-criado, como no exemplo a seguir:
$out = comando ($host,
'1.0/matriz',
'POST',
{"X-Auth-Token" => $token}, {raid_level => "raid5"});